package com.ctshk.rpc.order.custom.vo;

import com.ctshk.rpc.order.custom.dto.order.CustomOrderReceiptDetailsPreviewItemDTO;
import com.ctshk.rpc.order.custom.dto.order.CustomOrderReceiptDetailsPreviewRemarkDTO;
import com.ctshk.rpc.order.custom.dto.order.CustomOrderReceiptDetailsPreviewWayDTO;
import com.ctshk.rpc.order.custom.dto.order.ReceiptTouristInfoDTO;
import com.ctshk.rpc.order.custom.dto.tourist.TouristReceiptInfoDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 销售收据 json
 */
@Data
public class SalesReceiptJson implements Serializable {

    @ApiModelProperty(value = "付款方式")
    private List<String> payMethod;

    @ApiModelProperty(value = "付款方")
    private List<String> payer;

    @ApiModelProperty(value = "旅客收据详情列表(v2.0)")
    private List<TouristReceiptInfoDTO> touristReceiptInfoList;

    @ApiModelProperty(value = "收款Id项")
    private List<Long> collectionIdList;

    @ApiModelProperty(value = "旅客信息项")
    private List<ReceiptTouristInfoDTO> touristInfoDTOList;

    @ApiModelProperty(value = "團號TOUR CODE")
    private String tourCode;

    @ApiModelProperty(value = "天數DAYS")
    private Integer days;

    @ApiModelProperty(value = "交余款时间")
    private LocalDate deliveryDate;

    @ApiModelProperty(value = "出發日期")
    private LocalDate departureDate;

    @ApiModelProperty(value = "出發日期DEP.DATE")
    private String depDate;

    @ApiModelProperty(value = "行程線路ROUTE")
    private String route;

    @ApiModelProperty(value = "查詢號碼")
    private String enquiryNo;

    @ApiModelProperty(value = "集合時間查詢電話")
    private Long enquiryTimeTel;

    @ApiModelProperty(value = "收款项")
    private List<CustomOrderReceiptDetailsPreviewItemDTO> itemList;

    @ApiModelProperty(value = "收款方式")
    private List<CustomOrderReceiptDetailsPreviewWayDTO> wayList;

    @ApiModelProperty(value = "备注")
    private List<CustomOrderReceiptDetailsPreviewRemarkDTO> remarkList;

    @ApiModelProperty(value = "代收费用")
    private BigDecimal collectionFee;

    @ApiModelProperty(value = "调整费用")
    private BigDecimal adjustmentCost;

    @ApiModelProperty(value = "其他")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "团费")
    private BigDecimal groupFee;

    @ApiModelProperty(value = "總應付")
    private BigDecimal totalReceivables;

    @ApiModelProperty(value = "已付")
    private BigDecimal paidAmount;

    @ApiModelProperty(value = "現付")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "餘款")
    private BigDecimal remainingAmount;

    @ApiModelProperty(value = "收据编号")
    private String receiptNumber;

    @ApiModelProperty(value = "团费包含")
    private String tourFeeInclude;
    @ApiModelProperty(value = "团费不包含")
    private String tourFeeExclude;
    @ApiModelProperty(value = "报名须知")
    private String signNotice;
    @ApiModelProperty(value = "备注")
    private String remark;

}
